# 字符串
s = '''张怡萍！
'''
# 三引号定义字符串，可以换行
e = '''i like you
'''
# 字符串加法   不同类型不能进行相加
se = s +''+ e
print("*"*20)
print(se)
# 字符串乘法
se3 = se * 3
print("*"*20)
print(se3)
# 字符串中存在特殊字符，例如单双引号，常规解法：字符串中有单引号，就用双引号定义，字符串中有双引号，就用单引号定义
se4 = 'i like "you"'
print("*"*20)
print(se4)
# 字符串中同时存在单双引号，则使用反斜杠\转义
se5 = 'i like \'you\',but i \"fear\" you'
print("*"*20)
print(se5)
# 字符串长度
print("*"*20)
print(len(se3)) # len用于输出字符串长度
# 字符串索引  遍历字符串索引进行打印
print("*"*20)
for i in range(len(se5)):
    print(se5[i])
# 字符串索引与java不同，java的索引只有从前往后，0开始，python的索引从前往后，从0开始，但是从后往前，-1开始
print("*"*20)
for i in range(len(se5)-1,-1,-1):
    print(se5[i])
# 字符串切片 字符串可以通过索引进行切片，切片的索引可以不写，默认为0，-1  例如切取i like，就是从0-6
# 切片语法总结: 变量[起始索引:结束索引+1:步长] 第三个参数不止是步数,也是方向
print("*"*20)
print(se5[0:6])
# 字符串切片存在第三个参数，步长，默认为1,步长的定义即为你取的字符是隔几个取一次,默认为1则是连续取,改为2则是隔一个取一次
print("*"*20)
print(se5[0:6:2])
# 字符串反转 2种方式,一种是逆序遍历，一种是切片,切片通过控制步长的方向来实现
print("*"*20)
print(se5[::-1])